library(astsa)
library(MASS)
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## 
## Attaching package: 'forecast'
## The following object is masked from 'package:astsa':
## 
##     gas
load("finalproject.Rdata")

Exploratory Data Analysis

Raw Data

GDP: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

Imports: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

# Exploratory Data Analysis
# Raw Data
# 1. Time Series Plot
ts.plot(finalPro_data$GDP)

ts.plot(finalPro_data$Imports)

# 2. ACF
acf(finalPro_data$GDP)

acf(finalPro_data$Imports)

# 3. PACF
pacf(finalPro_data$GDP)

pacf(finalPro_data$Imports)

Log-Transformed Data

We use log transformation to stabilize the variance. Compared to box-cox transformation, log transformation is more suitable for economic context. However, compared to the raw data, all plots did not improve much.

GDP: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

Imports: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

# Log-Transformed Data
log.gdp.data = log(finalPro_data$GDP)
log.import.data = log(finalPro_data$Imports)
# 1. Time Series Plot
ts.plot(log.gdp.data)

ts.plot(log.import.data)

# 2. ACF
acf(log.gdp.data)

acf(log.import.data)

# 3. PACF
pacf(log.gdp.data)

pacf(log.import.data)

Differencing Data

We use differencing to stabilize the mean. Compared to the raw data, plots improved a lot.

GDP: - Time series is roughly stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

Imports: - Time series is roughly stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

# Differencing Data
diff.gdp.data = diff(finalPro_data$GDP)
diff.import.data = diff(finalPro_data$Imports)
# 1. Time Series Plot
ts.plot(diff.gdp.data)

ts.plot(diff.import.data)

# 2. ACF
acf(diff.gdp.data)

acf(diff.import.data)

# 3. PACF
pacf(diff.gdp.data)

pacf(diff.import.data)

Box-cox Transformed Data

Still, we use transformation to stabilize the mean. However, compared to the raw data, all plots did not improve much.

GDP: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

Imports: - Time series is not stationary. - ACF: There is no clear cutoff in ACF plot. ACF declines exponentially. - PACF: There is a spike at lag=1, suggesting potential AR(1) process.

# Box-cox Transformed Data 
gdp.lambda = BoxCox.lambda(finalPro_data$GDP)
boxcox.gdp.data = BoxCox(finalPro_data$GDP, gdp.lambda)
import.lambda = BoxCox.lambda(finalPro_data$Imports)
boxcox.import.data = BoxCox(finalPro_data$Imports, import.lambda)
# 1. Time Series Plot
ts.plot(boxcox.gdp.data)

ts.plot(boxcox.import.data)

# 2. ACF
acf(boxcox.gdp.data)

acf(boxcox.import.data)

# 3. PACF
pacf(boxcox.gdp.data)

pacf(boxcox.import.data)

Box-cox Differencing Data

We used boxcox transformation and differencing at the same time to stabilze both variance and the mean. All plots improved a lot. However, if log-differencing also work, it would be better to use log-differencing because diff(log(GDP)) indicates the growth rate in economics. Boxcox transformation is hard to interpret.

GDP: - Time series looks stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

Imports: - Time series looks stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

# Box-cox differencing Data 
boxcox.diff.gdp.data = diff(boxcox.gdp.data)
boxcox.diff.import.data = diff(boxcox.import.data)
# 1. Time Series Plot
ts.plot(boxcox.diff.gdp.data)

ts.plot(boxcox.diff.import.data)

# 2. ACF
acf(boxcox.diff.gdp.data)

acf(boxcox.diff.import.data)

# 3. PACF
pacf(boxcox.diff.gdp.data)

pacf(boxcox.diff.import.data)

Log-Differencing Data (Final)

This is our final model, but we are going to let R do differencing in model selection and forecasting process. The reason is, if we let R do differencing, we will be able to see prediction for GDP in original scale (log(GDP)) in forecasting. If we manually do differencing, we can only see forecasting in growth rate. In practice, it is usually more common to ask the question, “what’s predicted GDP for next year” instead of “what’s the growth rate of next year.”

We used log transformation and differencing at the same time to stabilze both variance and the mean. All plots improved a lot.

GDP: - Time series looks stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

Imports: - Time series looks stationary. - ACF: There is no clear cutoff in ACF plot. The spike at lag = 0 is because ACF always equal to 1 for h = 0. - PACF: There is no clear cutoff in PACF plot.

# Log-Differencing Data (Final)
log.diff.gdp.data = diff(log.gdp.data)
log.diff.import.data = diff(log.import.data)
# 1. Time Series Plot
ts.plot(log.diff.gdp.data)

ts.plot(log.diff.import.data)

# 2. ACF
acf(log.diff.gdp.data)

acf(log.diff.import.data)

# 3. PACF
pacf(log.diff.gdp.data)

pacf(log.diff.import.data)

Model Selection

GDP

# Model Selection
# GDP
# Model 1: MA(1)
log.gdp.ma1 = arima(log.gdp.data, order = c(0,1,1))
log.gdp.ma1.diagnostics = sarima(log.gdp.data,0,1,1)
## initial  value -2.051458 
## iter   2 value -2.052302
## iter   3 value -2.052325
## iter   4 value -2.052325
## iter   4 value -2.052325
## iter   4 value -2.052325
## final  value -2.052325 
## converged
## initial  value -2.052314 
## iter   2 value -2.052314
## iter   2 value -2.052314
## iter   2 value -2.052314
## final  value -2.052314 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ma1        0.0382 0.1228  0.3113  0.7568
## constant   0.0502 0.0177  2.8416  0.0063
## 
## sigma^2 estimated as 0.01649574 on 55 degrees of freedom 
##  
## AIC = -1.161487  AICc = -1.157589  BIC = -1.053958 
## 

log.gdp.ma1
## 
## Call:
## arima(x = log.gdp.data, order = c(0, 1, 1))
## 
## Coefficients:
##          ma1
##       0.1267
## s.e.  0.1182
## 
## sigma^2 estimated as 0.01864:  log likelihood = 32.61,  aic = -61.22
log.gdp.ma1.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ma1  constant
##       0.0382    0.0502
## s.e.  0.1228    0.0177
## 
## sigma^2 estimated as 0.0165:  log likelihood = 36.1,  aic = -66.2
## 
## $degrees_of_freedom
## [1] 55
## 
## $ttable
##          Estimate     SE t.value p.value
## ma1        0.0382 0.1228  0.3113  0.7568
## constant   0.0502 0.0177  2.8416  0.0063
## 
## $ICs
##       AIC      AICc       BIC 
## -1.161487 -1.157589 -1.053958
# Model 2: AR(1)
log.gdp.ar1 = arima(log.gdp.data, order = c(1,1,0))
log.gdp.ar1.diagnostics = sarima(log.gdp.data,1,1,0)
## initial  value -2.043604 
## iter   2 value -2.044628
## iter   3 value -2.044635
## iter   4 value -2.044638
## iter   4 value -2.044638
## iter   4 value -2.044638
## final  value -2.044638 
## converged
## initial  value -2.052438 
## iter   2 value -2.052450
## iter   3 value -2.052458
## iter   3 value -2.052458
## iter   3 value -2.052458
## final  value -2.052458 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.0444 0.1315  0.3380  0.7367
## constant   0.0502 0.0178  2.8207  0.0067
## 
## sigma^2 estimated as 0.01649082 on 55 degrees of freedom 
##  
## AIC = -1.161776  AICc = -1.157878  BIC = -1.054247 
## 

log.gdp.ar1
## 
## Call:
## arima(x = log.gdp.data, order = c(1, 1, 0))
## 
## Coefficients:
##          ar1
##       0.1642
## s.e.  0.1306
## 
## sigma^2 estimated as 0.01851:  log likelihood = 32.8,  aic = -61.61
log.gdp.ar1.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1  constant
##       0.0444    0.0502
## s.e.  0.1315    0.0178
## 
## sigma^2 estimated as 0.01649:  log likelihood = 36.11,  aic = -66.22
## 
## $degrees_of_freedom
## [1] 55
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1        0.0444 0.1315  0.3380  0.7367
## constant   0.0502 0.0178  2.8207  0.0067
## 
## $ICs
##       AIC      AICc       BIC 
## -1.161776 -1.157878 -1.054247
# Model 3: MA(2)
log.gdp.ma2 = arima(log.gdp.data, order = c(0,1,2))
log.gdp.ma2.diagnostics = sarima(log.gdp.data,0,1,2)
## initial  value -2.051458 
## iter   2 value -2.055718
## iter   3 value -2.056120
## iter   4 value -2.056142
## iter   5 value -2.056143
## iter   5 value -2.056143
## iter   5 value -2.056143
## final  value -2.056143 
## converged
## initial  value -2.056002 
## iter   2 value -2.056006
## iter   3 value -2.056006
## iter   3 value -2.056006
## iter   3 value -2.056006
## final  value -2.056006 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ma1        0.0159 0.1367  0.1162  0.9079
## ma2        0.0908 0.1388  0.6540  0.5159
## constant   0.0503 0.0187  2.6901  0.0095
## 
## sigma^2 estimated as 0.01636998 on 54 degrees of freedom 
##  
## AIC = -1.133784  AICc = -1.12584  BIC = -0.9904119 
## 

log.gdp.ma2
## 
## Call:
## arima(x = log.gdp.data, order = c(0, 1, 2))
## 
## Coefficients:
##          ma1     ma2
##       0.0827  0.1508
## s.e.  0.1416  0.1327
## 
## sigma^2 estimated as 0.01822:  log likelihood = 33.24,  aic = -60.48
log.gdp.ma2.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ma1     ma2  constant
##       0.0159  0.0908    0.0503
## s.e.  0.1367  0.1388    0.0187
## 
## sigma^2 estimated as 0.01637:  log likelihood = 36.31,  aic = -64.63
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE t.value p.value
## ma1        0.0159 0.1367  0.1162  0.9079
## ma2        0.0908 0.1388  0.6540  0.5159
## constant   0.0503 0.0187  2.6901  0.0095
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1337840 -1.1258396 -0.9904119
# Model 4: AR(2)
log.gdp.ar2 = arima(log.gdp.data, order = c(2,1,0))
log.gdp.ar2.diagnostics = sarima(log.gdp.data,2,1,0)
## initial  value -2.035413 
## iter   2 value -2.040611
## iter   3 value -2.040622
## iter   4 value -2.040622
## iter   4 value -2.040622
## iter   4 value -2.040622
## final  value -2.040622 
## converged
## initial  value -2.056414 
## iter   2 value -2.056422
## iter   3 value -2.056422
## iter   3 value -2.056422
## iter   3 value -2.056422
## final  value -2.056422 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.0405 0.1309  0.3097  0.7580
## ar2        0.0878 0.1302  0.6738  0.5033
## constant   0.0504 0.0194  2.6026  0.0119
## 
## sigma^2 estimated as 0.01635617 on 54 degrees of freedom 
##  
## AIC = -1.134616  AICc = -1.126672  BIC = -0.991244 
## 

log.gdp.ar2
## 
## Call:
## arima(x = log.gdp.data, order = c(2, 1, 0))
## 
## Coefficients:
##          ar1     ar2
##       0.1356  0.1793
## s.e.  0.1295  0.1294
## 
## sigma^2 estimated as 0.01789:  log likelihood = 33.74,  aic = -61.49
log.gdp.ar2.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1     ar2  constant
##       0.0405  0.0878    0.0504
## s.e.  0.1309  0.1302    0.0194
## 
## sigma^2 estimated as 0.01636:  log likelihood = 36.34,  aic = -64.67
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1        0.0405 0.1309  0.3097  0.7580
## ar2        0.0878 0.1302  0.6738  0.5033
## constant   0.0504 0.0194  2.6026  0.0119
## 
## $ICs
##       AIC      AICc       BIC 
## -1.134616 -1.126672 -0.991244
# Model 5: ARMA(1,1)
log.gdp.arma11 = arima(log.gdp.data, order = c(1,1,1))
log.gdp.arma11.diagnostics = sarima(log.gdp.data,1,1,1)
## initial  value -2.043604 
## iter   2 value -2.044276
## iter   3 value -2.044596
## iter   4 value -2.044598
## iter   5 value -2.044625
## iter   6 value -2.044786
## iter   7 value -2.044823
## iter   8 value -2.044926
## iter   9 value -2.044934
## iter  10 value -2.044947
## iter  11 value -2.045576
## iter  12 value -2.046165
## iter  13 value -2.046254
## iter  14 value -2.047052
## iter  15 value -2.047177
## iter  16 value -2.047178
## iter  16 value -2.047178
## iter  16 value -2.047178
## final  value -2.047178 
## converged
## initial  value -2.056080 
## iter   2 value -2.056116
## iter   3 value -2.056124
## iter   4 value -2.056126
## iter   5 value -2.056128
## iter   6 value -2.056139
## iter   7 value -2.056146
## iter   8 value -2.056149
## iter   9 value -2.056149
## iter  10 value -2.056149
## iter  10 value -2.056149
## iter  10 value -2.056149
## final  value -2.056149 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.6353 0.4481  1.4177  0.1620
## ma1       -0.5615 0.4727 -1.1879  0.2401
## constant   0.0502 0.0202  2.4854  0.0161
## 
## sigma^2 estimated as 0.0163663 on 54 degrees of freedom 
##  
## AIC = -1.134071  AICc = -1.126126  BIC = -0.9906986 
## 

log.gdp.arma11
## 
## Call:
## arima(x = log.gdp.data, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1      ma1
##       0.9785  -0.9133
## s.e.  0.0854   0.1929
## 
## sigma^2 estimated as 0.01719:  log likelihood = 34.7,  aic = -63.39
log.gdp.arma11.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ma1  constant
##       0.6353  -0.5615    0.0502
## s.e.  0.4481   0.4727    0.0202
## 
## sigma^2 estimated as 0.01637:  log likelihood = 36.32,  aic = -64.64
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1        0.6353 0.4481  1.4177  0.1620
## ma1       -0.5615 0.4727 -1.1879  0.2401
## constant   0.0502 0.0202  2.4854  0.0161
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1340706 -1.1261262 -0.9906986
# Model 6: ARMA(1,2)
log.gdp.arma12 = arima(log.gdp.data, order = c(1,1,2))
log.gdp.arma12.diagnostics = sarima(log.gdp.data,1,1,2)
## initial  value -2.043604 
## iter   2 value -2.046177
## iter   3 value -2.048533
## iter   4 value -2.048624
## iter   5 value -2.048815
## iter   6 value -2.049700
## iter   7 value -2.051473
## iter   8 value -2.051869
## iter   9 value -2.052374
## iter  10 value -2.052542
## iter  11 value -2.052542
## iter  11 value -2.052543
## iter  11 value -2.052543
## final  value -2.052543 
## converged
## initial  value -2.061088 
## iter   2 value -2.061098
## iter   3 value -2.061118
## iter   4 value -2.061120
## iter   5 value -2.061122
## iter   6 value -2.061133
## iter   7 value -2.061137
## iter   8 value -2.061139
## iter   9 value -2.061139
## iter   9 value -2.061139
## iter   9 value -2.061139
## final  value -2.061139 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.4806 0.4350  1.1048  0.2742
## ma1       -0.4623 0.4343 -1.0644  0.2920
## ma2        0.1225 0.1510  0.8116  0.4206
## constant   0.0505 0.0212  2.3799  0.0209
## 
## sigma^2 estimated as 0.016194 on 53 degrees of freedom 
##  
## AIC = -1.108962  AICc = -1.095467  BIC = -0.9297472 
## 

log.gdp.arma12
## 
## Call:
## arima(x = log.gdp.data, order = c(1, 1, 2))
## 
## Coefficients:
##         ar1      ma1      ma2
##       0.985  -0.9075  -0.0220
## s.e.  0.058   0.1496   0.1364
## 
## sigma^2 estimated as 0.01715:  log likelihood = 34.71,  aic = -61.42
log.gdp.arma12.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ma1     ma2  constant
##       0.4806  -0.4623  0.1225    0.0505
## s.e.  0.4350   0.4343  0.1510    0.0212
## 
## sigma^2 estimated as 0.01619:  log likelihood = 36.61,  aic = -63.21
## 
## $degrees_of_freedom
## [1] 53
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1        0.4806 0.4350  1.1048  0.2742
## ma1       -0.4623 0.4343 -1.0644  0.2920
## ma2        0.1225 0.1510  0.8116  0.4206
## constant   0.0505 0.0212  2.3799  0.0209
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1089622 -1.0954669 -0.9297472
# Model 7: ARMA(2,1)
log.gdp.arma21 = arima(log.gdp.data, order = c(2,1,1))
log.gdp.arma21.diagnostics = sarima(log.gdp.data,2,1,1)
## initial  value -2.035413 
## iter   2 value -2.038759
## iter   3 value -2.040329
## iter   4 value -2.040504
## iter   5 value -2.040649
## iter   6 value -2.041805
## iter   7 value -2.042863
## iter   8 value -2.043277
## iter   9 value -2.043499
## iter  10 value -2.043624
## iter  11 value -2.043626
## iter  12 value -2.043627
## iter  13 value -2.043627
## iter  14 value -2.043629
## iter  15 value -2.043629
## iter  16 value -2.043630
## iter  16 value -2.043630
## iter  16 value -2.043630
## final  value -2.043630 
## converged
## initial  value -2.059446 
## iter   2 value -2.059459
## iter   3 value -2.059466
## iter   4 value -2.059467
## iter   5 value -2.059470
## iter   6 value -2.059475
## iter   7 value -2.059479
## iter   8 value -2.059479
## iter   9 value -2.059480
## iter   9 value -2.059480
## iter   9 value -2.059480
## final  value -2.059480 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.4057 0.5161  0.7862  0.4353
## ar2        0.0918 0.1378  0.6661  0.5082
## ma1       -0.3718 0.5064 -0.7343  0.4660
## constant   0.0504 0.0209  2.4092  0.0195
## 
## sigma^2 estimated as 0.01625255 on 53 degrees of freedom 
##  
## AIC = -1.105643  AICc = -1.092148  BIC = -0.9264284 
## 

log.gdp.arma21
## 
## Call:
## arima(x = log.gdp.data, order = c(2, 1, 1))
## 
## Coefficients:
##          ar1      ar2      ma1
##       1.0145  -0.0282  -0.9339
## s.e.  0.1871   0.1558   0.1439
## 
## sigma^2 estimated as 0.01715:  log likelihood = 34.71,  aic = -61.42
log.gdp.arma21.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1     ar2      ma1  constant
##       0.4057  0.0918  -0.3718    0.0504
## s.e.  0.5161  0.1378   0.5064    0.0209
## 
## sigma^2 estimated as 0.01625:  log likelihood = 36.51,  aic = -63.02
## 
## $degrees_of_freedom
## [1] 53
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1        0.4057 0.5161  0.7862  0.4353
## ar2        0.0918 0.1378  0.6661  0.5082
## ma1       -0.3718 0.5064 -0.7343  0.4660
## constant   0.0504 0.0209  2.4092  0.0195
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1056434 -1.0921482 -0.9264284
# Model 8: ARMA(2,2) (final)
log.gdp.arma22 = arima(log.gdp.data, order = c(2,1,2))
## Warning in log(s2): NaNs produced
log.gdp.arma22.diagnostics = sarima(log.gdp.data,2,1,2)
## initial  value -2.035413 
## iter   2 value -2.038802
## iter   3 value -2.040478
## iter   4 value -2.040641
## iter   5 value -2.040791
## iter   6 value -2.042896
## iter   7 value -2.044919
## iter   8 value -2.044997
## iter   9 value -2.045682
## iter  10 value -2.045871
## iter  11 value -2.046747
## iter  12 value -2.047273
## iter  13 value -2.047581
## iter  14 value -2.047650
## iter  15 value -2.047702
## iter  16 value -2.047784
## iter  17 value -2.047792
## iter  18 value -2.047798
## iter  19 value -2.047815
## iter  20 value -2.047853
## iter  21 value -2.047961
## iter  22 value -2.048189
## iter  23 value -2.048265
## iter  24 value -2.048319
## iter  25 value -2.048351
## iter  26 value -2.048358
## iter  27 value -2.048491
## iter  28 value -2.048729
## iter  29 value -2.049412
## iter  30 value -2.050278
## iter  31 value -2.050624
## iter  32 value -2.050668
## iter  33 value -2.051024
## iter  34 value -2.051982
## iter  35 value -2.056779
## iter  36 value -2.059611
## iter  37 value -2.062731
## iter  38 value -2.067101
## iter  39 value -2.072227
## iter  40 value -2.088828
## iter  41 value -2.094344
## iter  42 value -2.097064
## iter  43 value -2.099764
## iter  44 value -2.099869
## iter  45 value -2.100886
## iter  46 value -2.101122
## iter  47 value -2.101204
## iter  48 value -2.101214
## iter  49 value -2.101216
## iter  50 value -2.101237
## iter  51 value -2.101241
## iter  51 value -2.101241
## iter  51 value -2.101241
## final  value -2.101241 
## converged
## initial  value -2.050366 
## iter   2 value -2.056004
## iter   3 value -2.081589
## iter   4 value -2.084062
## iter   5 value -2.085848
## iter   6 value -2.086763
## iter   7 value -2.087482
## iter   8 value -2.089787
## iter   9 value -2.091470
## iter  10 value -2.091972
## iter  11 value -2.093079
## iter  12 value -2.093232
## iter  13 value -2.093238
## iter  14 value -2.093255
## iter  15 value -2.093269
## iter  16 value -2.093278
## iter  17 value -2.093279
## iter  18 value -2.093279
## iter  19 value -2.093279
## iter  20 value -2.093279
## iter  20 value -2.093279
## iter  20 value -2.093279
## final  value -2.093279 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE  t.value p.value
## ar1        1.5232 0.1236  12.3224  0.0000
## ar2       -0.9044 0.0924  -9.7839  0.0000
## ma1       -1.5297 0.1006 -15.2086  0.0000
## ma2        1.0000 0.0999  10.0098  0.0000
## constant   0.0508 0.0196   2.5979  0.0122
## 
## sigma^2 estimated as 0.01443687 on 52 degrees of freedom 
##  
## AIC = -1.138155  AICc = -1.117515  BIC = -0.9230966 
## 

log.gdp.arma22
## 
## Call:
## arima(x = log.gdp.data, order = c(2, 1, 2))
## 
## Coefficients:
##          ar1     ar2     ma1      ma2
##       0.1291  0.8446  0.0650  -0.9350
## s.e.  0.0968  0.0858  0.1287   0.1277
## 
## sigma^2 estimated as 0.01591:  log likelihood = 36.02,  aic = -62.04
log.gdp.arma22.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ar2      ma1     ma2  constant
##       1.5232  -0.9044  -1.5297  1.0000    0.0508
## s.e.  0.1236   0.0924   0.1006  0.0999    0.0196
## 
## sigma^2 estimated as 0.01444:  log likelihood = 38.44,  aic = -64.87
## 
## $degrees_of_freedom
## [1] 52
## 
## $ttable
##          Estimate     SE  t.value p.value
## ar1        1.5232 0.1236  12.3224  0.0000
## ar2       -0.9044 0.0924  -9.7839  0.0000
## ma1       -1.5297 0.1006 -15.2086  0.0000
## ma2        1.0000 0.0999  10.0098  0.0000
## constant   0.0508 0.0196   2.5979  0.0122
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1381546 -1.1175148 -0.9230966

GDP Final Model: ARMA(2,2)

Our final model for GDP is ARMA(2,2).

  • Coefficients: All the coefficients are significant.
  • Residuals: Time series plot of residuals look like white noise. Stationary.
  • ACF of Residuals: ACF plot of residuals look like white noise. ACF = 0 for h > 0.
  • QQ plot: Residuals are normally distributed.
  • P-values for LB statistic: All significant, above blue threshold.
# GDP Final Model: ARMA(2,2)
log.gdp.arma22 = arima(log.gdp.data, order = c(2,1,2))
## Warning in log(s2): NaNs produced
log.gdp.arma22.diagnostics = sarima(log.gdp.data,2,1,2)
## initial  value -2.035413 
## iter   2 value -2.038802
## iter   3 value -2.040478
## iter   4 value -2.040641
## iter   5 value -2.040791
## iter   6 value -2.042896
## iter   7 value -2.044919
## iter   8 value -2.044997
## iter   9 value -2.045682
## iter  10 value -2.045871
## iter  11 value -2.046747
## iter  12 value -2.047273
## iter  13 value -2.047581
## iter  14 value -2.047650
## iter  15 value -2.047702
## iter  16 value -2.047784
## iter  17 value -2.047792
## iter  18 value -2.047798
## iter  19 value -2.047815
## iter  20 value -2.047853
## iter  21 value -2.047961
## iter  22 value -2.048189
## iter  23 value -2.048265
## iter  24 value -2.048319
## iter  25 value -2.048351
## iter  26 value -2.048358
## iter  27 value -2.048491
## iter  28 value -2.048729
## iter  29 value -2.049412
## iter  30 value -2.050278
## iter  31 value -2.050624
## iter  32 value -2.050668
## iter  33 value -2.051024
## iter  34 value -2.051982
## iter  35 value -2.056779
## iter  36 value -2.059611
## iter  37 value -2.062731
## iter  38 value -2.067101
## iter  39 value -2.072227
## iter  40 value -2.088828
## iter  41 value -2.094344
## iter  42 value -2.097064
## iter  43 value -2.099764
## iter  44 value -2.099869
## iter  45 value -2.100886
## iter  46 value -2.101122
## iter  47 value -2.101204
## iter  48 value -2.101214
## iter  49 value -2.101216
## iter  50 value -2.101237
## iter  51 value -2.101241
## iter  51 value -2.101241
## iter  51 value -2.101241
## final  value -2.101241 
## converged
## initial  value -2.050366 
## iter   2 value -2.056004
## iter   3 value -2.081589
## iter   4 value -2.084062
## iter   5 value -2.085848
## iter   6 value -2.086763
## iter   7 value -2.087482
## iter   8 value -2.089787
## iter   9 value -2.091470
## iter  10 value -2.091972
## iter  11 value -2.093079
## iter  12 value -2.093232
## iter  13 value -2.093238
## iter  14 value -2.093255
## iter  15 value -2.093269
## iter  16 value -2.093278
## iter  17 value -2.093279
## iter  18 value -2.093279
## iter  19 value -2.093279
## iter  20 value -2.093279
## iter  20 value -2.093279
## iter  20 value -2.093279
## final  value -2.093279 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE  t.value p.value
## ar1        1.5232 0.1236  12.3224  0.0000
## ar2       -0.9044 0.0924  -9.7839  0.0000
## ma1       -1.5297 0.1006 -15.2086  0.0000
## ma2        1.0000 0.0999  10.0098  0.0000
## constant   0.0508 0.0196   2.5979  0.0122
## 
## sigma^2 estimated as 0.01443687 on 52 degrees of freedom 
##  
## AIC = -1.138155  AICc = -1.117515  BIC = -0.9230966 
## 

log.gdp.arma22
## 
## Call:
## arima(x = log.gdp.data, order = c(2, 1, 2))
## 
## Coefficients:
##          ar1     ar2     ma1      ma2
##       0.1291  0.8446  0.0650  -0.9350
## s.e.  0.0968  0.0858  0.1287   0.1277
## 
## sigma^2 estimated as 0.01591:  log likelihood = 36.02,  aic = -62.04
log.gdp.arma22.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ar2      ma1     ma2  constant
##       1.5232  -0.9044  -1.5297  1.0000    0.0508
## s.e.  0.1236   0.0924   0.1006  0.0999    0.0196
## 
## sigma^2 estimated as 0.01444:  log likelihood = 38.44,  aic = -64.87
## 
## $degrees_of_freedom
## [1] 52
## 
## $ttable
##          Estimate     SE  t.value p.value
## ar1        1.5232 0.1236  12.3224  0.0000
## ar2       -0.9044 0.0924  -9.7839  0.0000
## ma1       -1.5297 0.1006 -15.2086  0.0000
## ma2        1.0000 0.0999  10.0098  0.0000
## constant   0.0508 0.0196   2.5979  0.0122
## 
## $ICs
##        AIC       AICc        BIC 
## -1.1381546 -1.1175148 -0.9230966

Imports

# Model Selection
# Imports
# Model 1: MA(1)
log.import.ma1 = arima(log.import.data, order = c(0,1,1))
log.import.ma1.diagnostics = sarima(log.import.data,0,1,1)
## initial  value -2.132354 
## iter   2 value -2.139659
## iter   3 value -2.143882
## iter   4 value -2.144278
## iter   5 value -2.144320
## iter   6 value -2.144360
## iter   7 value -2.144361
## iter   8 value -2.144361
## iter   9 value -2.144361
## iter   9 value -2.144361
## iter   9 value -2.144361
## final  value -2.144361 
## converged
## initial  value -2.143999 
## iter   2 value -2.144004
## iter   3 value -2.144005
## iter   4 value -2.144007
## iter   4 value -2.144007
## iter   4 value -2.144007
## final  value -2.144007 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ma1       -0.2314 0.1836 -1.2604  0.2128
## constant  -0.0016 0.0120 -0.1367  0.8917
## 
## sigma^2 estimated as 0.01371893 on 55 degrees of freedom 
##  
## AIC = -1.344873  AICc = -1.340975  BIC = -1.237344 
## 

log.import.ma1
## 
## Call:
## arima(x = log.import.data, order = c(0, 1, 1))
## 
## Coefficients:
##           ma1
##       -0.2300
## s.e.   0.1833
## 
## sigma^2 estimated as 0.01372:  log likelihood = 41.32,  aic = -78.64
log.import.ma1.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ma1  constant
##       -0.2314   -0.0016
## s.e.   0.1836    0.0120
## 
## sigma^2 estimated as 0.01372:  log likelihood = 41.33,  aic = -76.66
## 
## $degrees_of_freedom
## [1] 55
## 
## $ttable
##          Estimate     SE t.value p.value
## ma1       -0.2314 0.1836 -1.2604  0.2128
## constant  -0.0016 0.0120 -0.1367  0.8917
## 
## $ICs
##       AIC      AICc       BIC 
## -1.344873 -1.340975 -1.237344
# Model 2: AR(1)
log.import.ar1 = arima(log.import.data, order = c(1,1,0))
log.import.ar1.diagnostics = sarima(log.import.data,1,1,0)
## initial  value -2.124853 
## iter   2 value -2.129291
## iter   3 value -2.129301
## iter   4 value -2.129306
## iter   4 value -2.129306
## iter   4 value -2.129306
## final  value -2.129306 
## converged
## initial  value -2.136680 
## iter   2 value -2.136694
## iter   3 value -2.136701
## iter   3 value -2.136701
## iter   3 value -2.136701
## final  value -2.136701 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1       -0.0926 0.1312 -0.7056  0.4834
## constant  -0.0014 0.0143 -0.1002  0.9205
## 
## sigma^2 estimated as 0.01393219 on 55 degrees of freedom 
##  
## AIC = -1.330262  AICc = -1.326364  BIC = -1.222733 
## 

log.import.ar1
## 
## Call:
## arima(x = log.import.data, order = c(1, 1, 0))
## 
## Coefficients:
##           ar1
##       -0.0922
## s.e.   0.1311
## 
## sigma^2 estimated as 0.01393:  log likelihood = 40.91,  aic = -77.81
log.import.ar1.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ar1  constant
##       -0.0926   -0.0014
## s.e.   0.1312    0.0143
## 
## sigma^2 estimated as 0.01393:  log likelihood = 40.91,  aic = -75.82
## 
## $degrees_of_freedom
## [1] 55
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1       -0.0926 0.1312 -0.7056  0.4834
## constant  -0.0014 0.0143 -0.1002  0.9205
## 
## $ICs
##       AIC      AICc       BIC 
## -1.330262 -1.326364 -1.222733
# Model 3: MA(2)
log.import.ma2 = arima(log.import.data, order = c(0,1,2))
log.import.ma2.diagnostics = sarima(log.import.data,0,1,2)
## initial  value -2.132354 
## iter   2 value -2.199743
## iter   3 value -2.200444
## iter   4 value -2.201470
## iter   5 value -2.202071
## iter   6 value -2.202083
## iter   7 value -2.202083
## iter   7 value -2.202083
## iter   7 value -2.202083
## final  value -2.202083 
## converged
## initial  value -2.200774 
## iter   2 value -2.200797
## iter   3 value -2.200822
## iter   4 value -2.200823
## iter   5 value -2.200823
## iter   5 value -2.200823
## iter   5 value -2.200823
## final  value -2.200823 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ma1       -0.0465 0.1315 -0.3538  0.7249
## ma2       -0.3865 0.1414 -2.7324  0.0085
## constant  -0.0029 0.0086 -0.3335  0.7401
## 
## sigma^2 estimated as 0.01218653 on 54 degrees of freedom 
##  
## AIC = -1.423419  AICc = -1.415475  BIC = -1.280047 
## 

log.import.ma2
## 
## Call:
## arima(x = log.import.data, order = c(0, 1, 2))
## 
## Coefficients:
##           ma1      ma2
##       -0.0431  -0.3790
## s.e.   0.1317   0.1382
## 
## sigma^2 estimated as 0.01221:  log likelihood = 44.51,  aic = -83.03
log.import.ma2.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ma1      ma2  constant
##       -0.0465  -0.3865   -0.0029
## s.e.   0.1315   0.1414    0.0086
## 
## sigma^2 estimated as 0.01219:  log likelihood = 44.57,  aic = -81.13
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE t.value p.value
## ma1       -0.0465 0.1315 -0.3538  0.7249
## ma2       -0.3865 0.1414 -2.7324  0.0085
## constant  -0.0029 0.0086 -0.3335  0.7401
## 
## $ICs
##       AIC      AICc       BIC 
## -1.423419 -1.415475 -1.280047
# Model 4: AR(2)
log.import.ar2 = arima(log.import.data, order = c(2,1,0))
log.import.ar2.diagnostics = sarima(log.import.data,2,1,0)
## initial  value -2.117685 
## iter   2 value -2.186025
## iter   3 value -2.186679
## iter   4 value -2.186969
## iter   5 value -2.187031
## iter   6 value -2.187032
## iter   6 value -2.187032
## iter   6 value -2.187032
## final  value -2.187032 
## converged
## initial  value -2.198845 
## iter   2 value -2.198923
## iter   3 value -2.198958
## iter   4 value -2.198960
## iter   5 value -2.198962
## iter   5 value -2.198962
## iter   5 value -2.198962
## final  value -2.198962 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1       -0.1229 0.1240 -0.9911  0.3260
## ar2       -0.3417 0.1236 -2.7637  0.0078
## constant  -0.0015 0.0101 -0.1499  0.8814
## 
## sigma^2 estimated as 0.01224758 on 54 degrees of freedom 
##  
## AIC = -1.419695  AICc = -1.411751  BIC = -1.276323 
## 

log.import.ar2
## 
## Call:
## arima(x = log.import.data, order = c(2, 1, 0))
## 
## Coefficients:
##           ar1      ar2
##       -0.1224  -0.3414
## s.e.   0.1240   0.1236
## 
## sigma^2 estimated as 0.01225:  log likelihood = 44.45,  aic = -82.9
log.import.ar2.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ar1      ar2  constant
##       -0.1229  -0.3417   -0.0015
## s.e.   0.1240   0.1236    0.0101
## 
## sigma^2 estimated as 0.01225:  log likelihood = 44.46,  aic = -80.92
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1       -0.1229 0.1240 -0.9911  0.3260
## ar2       -0.3417 0.1236 -2.7637  0.0078
## constant  -0.0015 0.0101 -0.1499  0.8814
## 
## $ICs
##       AIC      AICc       BIC 
## -1.419695 -1.411751 -1.276323
# Model 5: ARMA(1,1) (final)
log.import.arma11 = arima(log.import.data, order = c(1,1,1))
log.import.arma11.diagnostics = sarima(log.import.data,1,1,1)
## initial  value -2.124853 
## iter   2 value -2.131198
## iter   3 value -2.133231
## iter   4 value -2.137431
## iter   5 value -2.149287
## iter   6 value -2.160505
## iter   7 value -2.163489
## iter   8 value -2.164322
## iter   9 value -2.164496
## iter  10 value -2.164541
## iter  11 value -2.164592
## iter  12 value -2.164651
## iter  13 value -2.164733
## iter  14 value -2.164745
## iter  15 value -2.164927
## iter  16 value -2.165021
## iter  17 value -2.165204
## iter  18 value -2.166863
## iter  19 value -2.167436
## iter  20 value -2.176018
## iter  21 value -2.178987
## iter  22 value -2.192394
## iter  23 value -2.194201
## iter  24 value -2.200608
## iter  25 value -2.203958
## iter  26 value -2.210785
## iter  27 value -2.211433
## iter  28 value -2.219517
## iter  29 value -2.220264
## iter  30 value -2.226721
## iter  31 value -2.239600
## iter  32 value -2.253113
## iter  33 value -2.260094
## iter  34 value -2.260647
## iter  35 value -2.263222
## iter  36 value -2.264100
## iter  36 value -2.264100
## iter  37 value -2.264274
## iter  37 value -2.264274
## iter  38 value -2.264308
## iter  38 value -2.264308
## iter  39 value -2.264316
## iter  39 value -2.264316
## iter  40 value -2.264317
## iter  40 value -2.264317
## iter  41 value -2.264318
## iter  41 value -2.264318
## iter  42 value -2.264318
## iter  42 value -2.264318
## iter  42 value -2.264318
## final  value -2.264318 
## converged
## initial  value -2.151965 
## iter   2 value -2.159581
## iter   3 value -2.165801
## iter   4 value -2.167893
## iter   5 value -2.168446
## iter   6 value -2.168480
## iter   7 value -2.168526
## iter   8 value -2.168538
## iter   9 value -2.168538
## iter  10 value -2.168539
## iter  11 value -2.168541
## iter  12 value -2.168542
## iter  12 value -2.168542
## iter  12 value -2.168542
## final  value -2.168542 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE  t.value p.value
## ar1        0.7838 0.0991   7.9080   0.000
## ma1       -1.0000 0.0583 -17.1426   0.000
## constant  -0.0075 0.0036  -2.0729   0.043
## 
## sigma^2 estimated as 0.0126088 on 54 degrees of freedom 
##  
## AIC = -1.358857  AICc = -1.350912  BIC = -1.215485 
## 

log.import.arma11
## 
## Call:
## arima(x = log.import.data, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1      ma1
##       0.4886  -0.7102
## s.e.  0.3028   0.2444
## 
## sigma^2 estimated as 0.01319:  log likelihood = 42.42,  aic = -78.84
log.import.arma11.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ma1  constant
##       0.7838  -1.0000   -0.0075
## s.e.  0.0991   0.0583    0.0036
## 
## sigma^2 estimated as 0.01261:  log likelihood = 42.73,  aic = -77.45
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE  t.value p.value
## ar1        0.7838 0.0991   7.9080   0.000
## ma1       -1.0000 0.0583 -17.1426   0.000
## constant  -0.0075 0.0036  -2.0729   0.043
## 
## $ICs
##       AIC      AICc       BIC 
## -1.358857 -1.350912 -1.215485
# Model 6: ARMA(1,2)
log.import.arma12 = arima(log.import.data, order = c(1,1,2))
log.import.arma12.diagnostics = sarima(log.import.data,1,1,2)
## initial  value -2.124853 
## iter   2 value -2.190526
## iter   3 value -2.196281
## iter   4 value -2.197046
## iter   5 value -2.198253
## iter   6 value -2.199359
## iter   7 value -2.201100
## iter   8 value -2.202005
## iter   9 value -2.202359
## iter  10 value -2.202363
## iter  11 value -2.202364
## iter  12 value -2.202364
## iter  13 value -2.202364
## iter  14 value -2.202364
## iter  15 value -2.202364
## iter  15 value -2.202364
## iter  15 value -2.202364
## final  value -2.202364 
## converged
## initial  value -2.209843 
## iter   2 value -2.209920
## iter   3 value -2.210058
## iter   4 value -2.210177
## iter   5 value -2.210240
## iter   6 value -2.210268
## iter   7 value -2.210268
## iter   7 value -2.210268
## iter   7 value -2.210268
## final  value -2.210268 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1       -0.3312 0.2902 -1.1412  0.2589
## ma1        0.2433 0.2720  0.8944  0.3751
## ma2       -0.4033 0.1267 -3.1820  0.0024
## constant  -0.0025 0.0093 -0.2631  0.7935
## 
## sigma^2 estimated as 0.01194653 on 53 degrees of freedom 
##  
## AIC = -1.407221  AICc = -1.393726  BIC = -1.228006 
## 

log.import.arma12
## 
## Call:
## arima(x = log.import.data, order = c(1, 1, 2))
## 
## Coefficients:
##           ar1     ma1      ma2
##       -0.3347  0.2489  -0.3991
## s.e.   0.2885  0.2697   0.1249
## 
## sigma^2 estimated as 0.01196:  log likelihood = 45.07,  aic = -82.14
log.import.arma12.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ar1     ma1      ma2  constant
##       -0.3312  0.2433  -0.4033   -0.0025
## s.e.   0.2902  0.2720   0.1267    0.0093
## 
## sigma^2 estimated as 0.01195:  log likelihood = 45.11,  aic = -80.21
## 
## $degrees_of_freedom
## [1] 53
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1       -0.3312 0.2902 -1.1412  0.2589
## ma1        0.2433 0.2720  0.8944  0.3751
## ma2       -0.4033 0.1267 -3.1820  0.0024
## constant  -0.0025 0.0093 -0.2631  0.7935
## 
## $ICs
##       AIC      AICc       BIC 
## -1.407221 -1.393726 -1.228006
# Model 7: ARMA(2,1)
log.import.arma21 = arima(log.import.data, order = c(2,1,1))
log.import.arma21.diagnostics = sarima(log.import.data,2,1,1)
## initial  value -2.117685 
## iter   2 value -2.183588
## iter   3 value -2.185259
## iter   4 value -2.185930
## iter   5 value -2.186463
## iter   6 value -2.186556
## iter   7 value -2.187485
## iter   8 value -2.187673
## iter   9 value -2.187720
## iter  10 value -2.187726
## iter  11 value -2.187727
## iter  11 value -2.187727
## iter  11 value -2.187727
## final  value -2.187727 
## converged
## initial  value -2.199962 
## iter   2 value -2.200019
## iter   3 value -2.200062
## iter   4 value -2.200062
## iter   5 value -2.200063
## iter   6 value -2.200064
## iter   7 value -2.200069
## iter   8 value -2.200072
## iter   9 value -2.200074
## iter  10 value -2.200074
## iter  10 value -2.200074
## final  value -2.200074 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1       -0.3207 0.7160 -0.4479  0.6561
## ar2       -0.3531 0.1222 -2.8890  0.0056
## ma1        0.2253 0.8057  0.2797  0.7808
## constant  -0.0016 0.0108 -0.1486  0.8824
## 
## sigma^2 estimated as 0.01221869 on 53 degrees of freedom 
##  
## AIC = -1.386832  AICc = -1.373337  BIC = -1.207617 
## 

log.import.arma21
## 
## Call:
## arima(x = log.import.data, order = c(2, 1, 1))
## 
## Coefficients:
##           ar1      ar2     ma1
##       -0.3181  -0.3528  0.2230
## s.e.   0.7032   0.1222  0.7907
## 
## sigma^2 estimated as 0.01222:  log likelihood = 44.51,  aic = -81.03
log.import.arma21.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ar1      ar2     ma1  constant
##       -0.3207  -0.3531  0.2253   -0.0016
## s.e.   0.7160   0.1222  0.8057    0.0108
## 
## sigma^2 estimated as 0.01222:  log likelihood = 44.52,  aic = -79.05
## 
## $degrees_of_freedom
## [1] 53
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1       -0.3207 0.7160 -0.4479  0.6561
## ar2       -0.3531 0.1222 -2.8890  0.0056
## ma1        0.2253 0.8057  0.2797  0.7808
## constant  -0.0016 0.0108 -0.1486  0.8824
## 
## $ICs
##       AIC      AICc       BIC 
## -1.386832 -1.373337 -1.207617
# Model 8: ARMA(2,2)
log.import.arma22 = arima(log.import.data, order = c(2,1,2))
log.import.arma22.diagnostics = sarima(log.import.data,2,1,2)
## initial  value -2.117685 
## iter   2 value -2.146070
## iter   3 value -2.189558
## iter   4 value -2.191196
## iter   5 value -2.191658
## iter   6 value -2.194157
## iter   7 value -2.196115
## iter   8 value -2.199075
## iter   9 value -2.200842
## iter  10 value -2.202596
## iter  11 value -2.203318
## iter  12 value -2.203457
## iter  13 value -2.203461
## iter  14 value -2.203464
## iter  15 value -2.203467
## iter  16 value -2.203469
## iter  17 value -2.203470
## iter  18 value -2.203472
## iter  19 value -2.203476
## iter  20 value -2.203477
## iter  21 value -2.203477
## iter  22 value -2.203478
## iter  23 value -2.203478
## iter  23 value -2.203478
## final  value -2.203478 
## converged
## initial  value -2.209480 
## iter   2 value -2.209834
## iter   3 value -2.209908
## iter   4 value -2.210012
## iter   5 value -2.210118
## iter   6 value -2.210245
## iter   7 value -2.210303
## iter   8 value -2.210312
## iter   9 value -2.210329
## iter  10 value -2.210339
## iter  11 value -2.210345
## iter  12 value -2.210345
## iter  12 value -2.210345
## final  value -2.210345 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1       -0.3480 0.3419 -1.0178  0.3135
## ar2       -0.0325 0.3434 -0.0947  0.9249
## ma1        0.2586 0.3225  0.8019  0.4263
## ma2       -0.3743 0.3343 -1.1197  0.2680
## constant  -0.0024 0.0095 -0.2494  0.8040
## 
## sigma^2 estimated as 0.0119451 on 52 degrees of freedom 
##  
## AIC = -1.372287  AICc = -1.351647  BIC = -1.157229 
## 

log.import.arma22
## 
## Call:
## arima(x = log.import.data, order = c(2, 1, 2))
## 
## Coefficients:
##           ar1      ar2     ma1      ma2
##       -0.3556  -0.0426  0.2677  -0.3617
## s.e.   0.3363   0.3328  0.3174   0.3224
## 
## sigma^2 estimated as 0.01196:  log likelihood = 45.08,  aic = -80.16
log.import.arma22.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##           ar1      ar2     ma1      ma2  constant
##       -0.3480  -0.0325  0.2586  -0.3743   -0.0024
## s.e.   0.3419   0.3434  0.3225   0.3343    0.0095
## 
## sigma^2 estimated as 0.01195:  log likelihood = 45.11,  aic = -78.22
## 
## $degrees_of_freedom
## [1] 52
## 
## $ttable
##          Estimate     SE t.value p.value
## ar1       -0.3480 0.3419 -1.0178  0.3135
## ar2       -0.0325 0.3434 -0.0947  0.9249
## ma1        0.2586 0.3225  0.8019  0.4263
## ma2       -0.3743 0.3343 -1.1197  0.2680
## constant  -0.0024 0.0095 -0.2494  0.8040
## 
## $ICs
##       AIC      AICc       BIC 
## -1.372287 -1.351647 -1.157229

Imports Final Model: ARMA(1,1)

Our final model for Imports is ARMA(1,1).

  • Coefficients: All the coefficients are significant.
  • Residuals: Time series plot of residuals look like white noise. Stationary.
  • ACF of Residuals: ACF plot of residuals look like white noise. ACF = 0 for h > 0.
  • QQ plot: Residuals are normally distributed.
  • P-values for LB statistic: Almost all significant, above blue threshold.
# Imports Final Model: ARMA(1,1)
log.import.arma11 = arima(log.import.data, order = c(1,1,1))
log.import.arma11.diagnostics = sarima(log.import.data,1,1,1)
## initial  value -2.124853 
## iter   2 value -2.131198
## iter   3 value -2.133231
## iter   4 value -2.137431
## iter   5 value -2.149287
## iter   6 value -2.160505
## iter   7 value -2.163489
## iter   8 value -2.164322
## iter   9 value -2.164496
## iter  10 value -2.164541
## iter  11 value -2.164592
## iter  12 value -2.164651
## iter  13 value -2.164733
## iter  14 value -2.164745
## iter  15 value -2.164927
## iter  16 value -2.165021
## iter  17 value -2.165204
## iter  18 value -2.166863
## iter  19 value -2.167436
## iter  20 value -2.176018
## iter  21 value -2.178987
## iter  22 value -2.192394
## iter  23 value -2.194201
## iter  24 value -2.200608
## iter  25 value -2.203958
## iter  26 value -2.210785
## iter  27 value -2.211433
## iter  28 value -2.219517
## iter  29 value -2.220264
## iter  30 value -2.226721
## iter  31 value -2.239600
## iter  32 value -2.253113
## iter  33 value -2.260094
## iter  34 value -2.260647
## iter  35 value -2.263222
## iter  36 value -2.264100
## iter  36 value -2.264100
## iter  37 value -2.264274
## iter  37 value -2.264274
## iter  38 value -2.264308
## iter  38 value -2.264308
## iter  39 value -2.264316
## iter  39 value -2.264316
## iter  40 value -2.264317
## iter  40 value -2.264317
## iter  41 value -2.264318
## iter  41 value -2.264318
## iter  42 value -2.264318
## iter  42 value -2.264318
## iter  42 value -2.264318
## final  value -2.264318 
## converged
## initial  value -2.151965 
## iter   2 value -2.159581
## iter   3 value -2.165801
## iter   4 value -2.167893
## iter   5 value -2.168446
## iter   6 value -2.168480
## iter   7 value -2.168526
## iter   8 value -2.168538
## iter   9 value -2.168538
## iter  10 value -2.168539
## iter  11 value -2.168541
## iter  12 value -2.168542
## iter  12 value -2.168542
## iter  12 value -2.168542
## final  value -2.168542 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE  t.value p.value
## ar1        0.7838 0.0991   7.9080   0.000
## ma1       -1.0000 0.0583 -17.1426   0.000
## constant  -0.0075 0.0036  -2.0729   0.043
## 
## sigma^2 estimated as 0.0126088 on 54 degrees of freedom 
##  
## AIC = -1.358857  AICc = -1.350912  BIC = -1.215485 
## 

log.import.arma11
## 
## Call:
## arima(x = log.import.data, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1      ma1
##       0.4886  -0.7102
## s.e.  0.3028   0.2444
## 
## sigma^2 estimated as 0.01319:  log likelihood = 42.42,  aic = -78.84
log.import.arma11.diagnostics
## $fit
## 
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S), 
##     xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc, 
##         REPORT = 1, reltol = tol))
## 
## Coefficients:
##          ar1      ma1  constant
##       0.7838  -1.0000   -0.0075
## s.e.  0.0991   0.0583    0.0036
## 
## sigma^2 estimated as 0.01261:  log likelihood = 42.73,  aic = -77.45
## 
## $degrees_of_freedom
## [1] 54
## 
## $ttable
##          Estimate     SE  t.value p.value
## ar1        0.7838 0.0991   7.9080   0.000
## ma1       -1.0000 0.0583 -17.1426   0.000
## constant  -0.0075 0.0036  -2.0729   0.043
## 
## $ICs
##       AIC      AICc       BIC 
## -1.358857 -1.350912 -1.215485